package com.wsc.personalblog.service;

import com.wsc.personalblog.DTO.RoleDTO;
import com.wsc.personalblog.DTO.UserDTO;
import com.wsc.personalblog.entity.User;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;

public interface UserService {

    UserDTO login(User user);

    UserDTO autoLogin(String token);

    void register(UserDTO user);

    User getUserAndRoleInfoByUsername(String username);

    void getVerificationCode(String mail);

    User getUserAndRoleInfoByMail(String username);

    void getLoginVerificationCode(String mail1);

    UserDTO emailLogin(UserDTO user);

    String updateAvatar(MultipartFile avatar) throws IOException;

    void updateUsername(String username);

    void updatePassword(String newPassword, String oldPassword);

    void getForgetVerificationCode(String mail1);

    void forgetPassword(String newPassword, String mail, String code);

    UserDTO backendLogin(User user);

    UserDTO backendEmailLogin(UserDTO user);

    UserDTO backendAutoLogin(String token);

    List<User> getUserInfoList();

    Integer addUser(User user);

    void removeUser(Integer id);

    void updateUser(User user);

    RoleDTO getRole(Integer userId);

    void updateRole(RoleDTO roleDTO);

    List<User> getUserInfoListByName(String name);
}
